MIO/EMIO(按键/指示灯/蜂鸣器)测试

创建vivado工程

基于之前Hello World或者E2PROM的vivado工程,进行修改:

原理图如下:涉及到PS端的MIO引出的两个按键和两个LED、PS端EMIO引出的两个按键和两个LED,一个EMIO引出IO用于控制蜂鸣器。

image-20250623120853595

image-20250722114056058

 

image-20250722114033885

 

image-20250623120957863

配置PS端直接点击GPIO MIO,此时的引脚默认是全部选中的。我们要检测PS_KEY0对应MIO0,PS_KEY1对应MIO11。PS_LED0对应MIO7,PS_LED1对应MIO8。

VeryCapture_20250618160905

需要设置为EMIO的IO有五个,分别对应两个按键、两个LED和一个蜂鸣器,所以在配置时选择5就行,选多的话在之后的引脚约束中必须也给多余的引脚配置约束:

image-20250722114213223

 

点击OK,同样,右击GPIO_0点击Make External,软件会自动在顶层模块中自动生成与EMIO 接口对应的外部引脚:

 

VeryCapture_20250618160943

接下来的步骤和IIC相同,只是在进行引脚约束时有所不同:在此我使用勾选的方法配置引脚约束,由原理图得到:

image-20250811141202632

此时界面中的【0】、【1】、【2】、【3】、【4】分别对应着PL_KEY0、PL_KEY1、PL_LED0、PL_LED1、BEEP。

之后依次综合、实现、生成bitstream,最后生成新的.xsa文件:

VeryCapture_20250618121240

创建vitis应用工程

在vitis里面平台工程更新一下:右击创建的平台工程,点击Update Hardware Specification:选择.xsa文件路径,出现以下弹框,点击OK,说明更新成功。平台工程会显示out of date,这时需要重新build平台工程。

VeryCapture_20250618121412

VeryCapture_20250618121446

VeryCapture_20250618121501

同样,点击File-->new-->Application Project;

选择空的.c工程;

加入.c文件即可。

在程序中实现了四个按键分别控制四个指示灯,按键按下时,指示灯点亮,按键松开时,指示灯熄灭。

需要说明的是,MIO的引脚编号为053,EMIO的引脚编号从54开始。因为这次EMIO扩展了5个引脚,所以对应的编号为5458

编译调试

编译工程成功后,用type-c USB线将开发板的JTAG和电脑连接,使用另外一根type-c USB线将开发板的PS UART和电脑连接。

image-20250623121604830

在电脑上打开串口调试工具MobaXterm,和开发板的PS UART建立连接。

image-20250623121329304

在vitis上进入调试模式:在Debug As,选择第一个。全速运行就可以通过串口看到调试信息,并且在开发板上可以看见相应的现象。

image-20250813190008282

运行后,按下或抬起相应的按键,会在串口中打印相应的按键按下或抬起的信息,并且相应的指示灯会点亮或熄灭。

image-20250813185854233